Universal serial buses (USBs) are used by a wide variety of devices to communicate, one with another. For example, a USB may be used in a traditional desktop environment to connect a desktop computer with input devices (e.g., a keyboard and mouse), output devices (e.g., a printer and speakers), storage devices (e.g., a hard disk drive), and so on. In some instances, however, techniques employed by a traditional USB may be inefficient, such as by causing inefficient power consumption which may hinder implementation outside of a traditional desktop environment.
The overhead encountered using a traditional USB suspend/resume protocol may make USB unsuitable for implementations having limited resources, e.g., mobile devices that use a battery, as well as devices that use frequent suspend/resume operations to conserve resources. For example, operation of a traditional wireless local area network (WLAN) device may be suspended for predetermined periods and resumed in order to conserve power, such as to check for network traffic for a period of three milliseconds every 100 milliseconds (ms). Traditional USB suspend/wakeup techniques, however, may add a significant amount of overhead (e.g., time and power) to a suspend/resume operation of the device during each periodic interval. For example, a traditional USB suspend/resume protocol may have a minimum of 30 ms overhead, which may include a 3 ms quiet period for the device to assure that the USB is being suspended, a minimal 5 ms suspended period before wakeup of a host, and a 20 ms resume signal. Further, host driver processing latency may contribute 10 to 50 ms additional overhead. Thus, the amount of time used to perform a traditional USB suspend/resume protocol as well as the amount of power consumed during this performance may make USB unsuitable for mobile applications.